﻿Imports System.Data.OleDb

Public Class Trabajo
    Private Conexion As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FacultadMatematicaAplicada;Data Source=LAVIEJA")

    Public Sub RegistrarTF(ByVal paramExp As String, ByVal paramTrabajo As String, ByVal paramDniAlumno As String, ByVal paramDniGuia As String, ByVal paramDniAsesor As String, ByVal paramFecha As DateTime, ByVal paramExamen As DateTime, ByVal paramPlan As String)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "insertTrabajoFinal" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroExpediente", paramExp)) 'Agregamos a la colección de parámetros los parametros que necesita el procedimiento almacenad
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDniAlumno", paramDniAlumno))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNombreTrabajo", paramTrabajo))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDniProfesorGuia", paramDniGuia))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDniProfesorAsesor", paramDniAsesor))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFecha", paramFecha))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFechaUltimoExamen", paramExamen))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramPlanEstudios", paramPlan))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub

    Public Sub RegistrarCAL(ByVal paramExp As String, ByVal paramNroResolucion As String, ByVal paramFecha As DateTime)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "insertNroResolucionCAL" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroResolucion", paramNroResolucion))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFecha", paramFecha))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroExpediente", paramExp))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub

    Public Sub RegistrarProfesorNota(ByVal paramExp As String, ByVal paramProfesor As String)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "insertNotaProfesor" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroExpediente", paramExp))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDni", paramProfesor))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub

    Public Sub RegistrarAN(ByVal paramExp As String, ByVal paramNroResolucion As String, ByVal paramFecha As DateTime)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "insertNroResolucionAN" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroResolucion", paramNroResolucion))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFecha", paramFecha))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroExpediente", paramExp))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub

    Public Sub RegistrarATF(ByVal paramExp As String, ByVal paramNroResolucion As String, ByVal paramFecha As DateTime)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "insertNroResolucionTA" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroResolucion", paramNroResolucion))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFecha", paramFecha))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNroExpediente", paramExp))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub


    Public Function obtenerTrabajosAprobados(ByVal fechaDesde As String, ByVal fechaHasta As String) As DataSet

        Conexion.Open()

        Dim comando As New OleDbCommand("obtenerTrabajosAprobadosAño", Conexion)
        comando.CommandType = CommandType.StoredProcedure


        comando.Parameters.Add(New OleDbParameter("@paramDesdeFecha", fechaDesde))
        comando.Parameters.Add(New OleDbParameter("@paramHastaFecha", fechaHasta))


        Dim ds As New DataSet() 'System.Data.DataSet()

        Dim DA As New OleDbDataAdapter(comando)

        DA.Fill(ds, "TrabajoFinal", fechaDesde, fechaHasta)

        Conexion.Close()

        Return ds
    End Function

    Public Function obtenerTrabajoExpediente(ByVal nroExpediente As String) As DataSet

        Conexion.Open()

        Dim comando As New OleDbCommand("obtenerTrabajoExpediente", Conexion)
        comando.CommandType = CommandType.StoredProcedure


        comando.Parameters.Add(New OleDbParameter("@nroExpediente", nroExpediente))

        Dim ds As New DataSet() 'System.Data.DataSet()

        Dim DA As New OleDbDataAdapter(comando)

        DA.Fill(ds, "TrabajoFinal")

        Conexion.Close()

        Return ds
    End Function

    Public Function obtenerTrabajoAprobadoExpediente(ByVal nroExpediente As String) As DataSet

        Conexion.Open()

        Dim comando As New OleDbCommand("obtenerTrabajoAprobadoExpediente", Conexion)
        comando.CommandType = CommandType.StoredProcedure


        comando.Parameters.Add(New OleDbParameter("@nroExpediente", nroExpediente))

        Dim ds As New DataSet() 'System.Data.DataSet()

        Dim DA As New OleDbDataAdapter(comando)

        DA.Fill(ds, "TrabajoFinal")

        Conexion.Close()

        Return ds
    End Function

    Public Function obtenerNotaExpediente(ByVal nroExpediente As String) As DataSet

        Conexion.Open()

        Dim comando As New OleDbCommand("obtenerNotaExpediente", Conexion)
        comando.CommandType = CommandType.StoredProcedure


        comando.Parameters.Add(New OleDbParameter("@nroExpediente", nroExpediente))

        Dim ds As New DataSet() 'System.Data.DataSet()

        Dim DA As New OleDbDataAdapter(comando)

        DA.Fill(ds, "NotaExpediente")

        Conexion.Close()

        Return ds
    End Function


    Public Function obtenerEgresados(ByVal fechaDesde As String, ByVal fechaHasta As String) As DataSet

        Conexion.Open()

        Dim comando As New OleDbCommand("obtenerEgresadoAño", Conexion)
        comando.CommandType = CommandType.StoredProcedure


        comando.Parameters.Add(New OleDbParameter("@paramDesdeFecha", fechaDesde))
        comando.Parameters.Add(New OleDbParameter("@paramHastaFecha", fechaHasta))


        Dim ds As New DataSet() 'System.Data.DataSet()

        Dim DA As New OleDbDataAdapter(comando)

        DA.Fill(ds, "Egresado", fechaDesde, fechaHasta)

        Conexion.Close()

        Return ds
    End Function

End Class
